草庐IT

Android JUnit 测试 ClassNotFoundException

全部标签

java - 使 IntelliJ 生成测试而不抛出异常

当我使用IntelliJIDEA的CreateTest功能时,它会生成带有throwsException子句的测试用例,例如:@TestpublicvoidtestIsInteger()throwsException{}这让我有点恼火:我更喜欢只在必要时自己添加特定的throws子句。这样我就可以一目了然地看到每个测试用例可能抛出什么样的异常。如何更改IntelliJ的这种行为以省略throws子句?或者我想要这个是错误的?创作者似乎认为这种默认行为是件好事。 最佳答案 您可以进入设置/文件和代码模板/代码选项卡并更改JUnit测试

java - Java 类的单元测试和源代码

我很想了解Java如何测试其API。比方说,我对ConcurrentHashMap这个类感兴趣,这个类会有单元测试吗?如果有,它是否对公众开放? 最佳答案 当您说“Java”时,您可能指的是Java开发工具包(JDK),它作为OracleJDK出现。和OpenJDK(OracleJDK本质上是带有afewextras的OpenJDK)。OpenJDK是开源的;其所有项目的源代码都可以在这里找到:http://hg.openjdk.java.net/特别是,这里是jdk7的可浏览版本项目目录。Iamcurioustounderstan

java - 令人困惑的测试失败 - 夏令时

在Jenkins的夜间构建中,我们的一项测试在凌晨2:00:12失败。经过一段时间的调试和更改计算机的系统时间后,我感到非常困惑。然后我写了下面的测试(模拟问题),它失败了,但我不明白为什么。我试过谷歌,但没有找到类似的东西。谁能解释为什么最后一个断言失败?@TestpublicvoidtestFirstBeforeSecond_atDayLightSavingTime()throwsParseException{Datefirst=newSimpleDateFormat("dd-MM-yyyyHH:mm").parse("25-10-201500:59");Datesecond=ne

java - 在不创建单独的 maven 项目的情况下使用 jmh 对代码进行基准测试

我正在开发一个Maven项目,我希望使用jmh来对我的代码进行基准测试。我想组织我的项目,使其包含源代码、单元测试和基准测试。gradle中似乎有一种方法可以在不创建单独的gradle项目的情况下对代码进行基准测试(参见link)。有没有办法在Maven中执行此操作? 最佳答案 简短的回答是是。我在我的项目中遇到过这个目录布局(但你绝对可以改变它)+-src/+-main/java-sources+-test/+-java-testsources+-perf-benchmarks你需要几个插件来实现这一点。build-helper-

java - 测试新的Java解析器

纯粹是自学练习,我试图使用Parse::RecDescent模块在Perl中编写Java解析器。稍后我可能会使用其他工具(如Antlr,野牛等)重新实现解析器。但是,根据Java语言规范,我如何确保我的解析器确实生成了正确的解析器?含义,它对悬挂的else的正确处理,运算符的关联性和-precedence等。一种方法是通过使两个解析器都针对大量测试Java程序生成AST,然后将我的解析器与已知的,无错误的解析器进行比较,然后比较两组AST。如果这确实是唯一的方法,那么在哪里可以找到涵盖整个Java语言规范的大量测试Java程序套件?我看过JavaParser,但似乎没有详尽的测试数据集

用于 getter setter 的 Java lombok 单元测试

我在我的Java项目中使用lombok,用@Getter和@Setter注释来注释我的对象的私有(private)成员变量。我们知道那些getter和setter会按预期工作。所以我们真的不需要对它们进行单元测试。但是,这会降低单元测试中代码的代码覆盖率。有没有办法告诉单元测试引擎不需要测试lombok生成的getters和setters? 最佳答案 从Lombok1.16.14开始,所有生成的方法都将使用@lombok.Generated进行注释。您可以从Cobertura测试报告中排除它们:org.codehaus.mojoco

java - 运行单元测试时对 assertEquals 的引用不明确

在我的申请中`CategoryDao`isa`interface`,`Category`isamodel`class`我的代码是CategoryTestCase.javapackagecom.binod.onlineshopping.category.test;importcom.binod.onlineshopping.category.dao.CategoryDao;importcom.binod.onlineshopping.category.model.Category;importorg.springframework.context.annotation.Annotatio

java - 为什么 JUnit 5 测试不从抽象类继承 @Test 注解?

我刚刚意识到(在将遗留代码从JUnit4迁移到JUnit5时)我们的一些测试方法没有执行,因为它们没有@Test注释。他们没有它,因为它们覆盖了抽象父类(superclass)(存在注释的地方)的方法。我可以通过向每个方法添加@Test轻松解决此问题。但我想知道这是否是预期的行为。它从JUnit4更改为5,但我在officialJUnit5UserGuide中找不到任何相关信息或其他任何地方。根据thisquestion,注解通常不被继承。但似乎这是在新的JUnit版本中有意更改的。(或者我错过了什么?)抽象测试类importorg.junit.jupiter.api.Test;abs

java - Spring MockMvc - 如何测试 REST Controller 的删除请求?

我需要测试我的Controller方法,包括删除方法。这是部分Controller代码:@RestController@RequestMapping("/api/foo")publicclassFooController{@AutowiredprivateFooServicefooService;//othermethodswhichworksfineintests@RequestMapping(path="/{id}",method=RequestMethod.DELETE)publicvoiddelete(@PathVariableLongid){fooService.delete

java - 更改数据库模式和单元测试

在我们开始之前,我知道很少有人认为命中数据库的测试不是“单元测试”。也许“集成测试”会是一个更好的名字。无论哪种方式,开发人员都会对数据库进行测试。为了启用单元测试,我有一个开发人员本地数据库,我清除了该数据库,并在每次测试开始时使用dbUnit填充了一组已知数据。.这一切都运行良好,直到测试使用的表以某种方式发生变化并且我必须手动更新所有XML数据集。这是一种痛苦。我认为其他人一定遇到了同样的问题,并希望找到一个很好的巧妙解决方案。那么对于需要填充数据库的测试,您使用什么以及如何处理表定义更改?(虽然我使用Java,但我对使用不同技术的解决方案持开放态度。)编辑:澄清一点。我有一个人